From 9ca4f38db1ac191fe0ce9d455940e09170307d47 Mon Sep 17 00:00:00 2001 From: Factiven Date: Wed, 17 May 2023 14:25:48 +0700 Subject: update v3.5.8 (#13) * Merge request (#11) * Update v3.5.5 > Now Skip button will hide if player is not in focused state. > Added some options to player. > Manga images should be displayed now. * Update videoPlayer.js * Revamp hero section #1 * UI Improvement > Updating main page > Updated Genres selection using params method > Added search bar v1.0 on main page ( [ctrl + space] to access search bar ) * update meta * Update [...id].js * Update [...id].js > Back to ssr I guess * update episode selector * Update [...info].js * Update UI > Added On-Going section for AniList user * Update content.js * added dynamic og * Update og.jsx * Update og * Update og.jsx * update og and id fallback > Added fallback for anime info if it's not found * Update v3.5.7 * Update v3.5.8 > Added fallback for empty episodes --- pages/anime/[...id].js | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) (limited to 'pages/anime/[...id].js') diff --git a/pages/anime/[...id].js b/pages/anime/[...id].js index dc385f9..a2c84a4 100644 --- a/pages/anime/[...id].js +++ b/pages/anime/[...id].js @@ -20,6 +20,7 @@ import Modal from "../../components/modal"; import { signIn, useSession } from "next-auth/react"; import AniList from "../../components/media/aniList"; import ListEditor from "../../components/listEditor"; +import { closestMatch } from "closest-match"; const query = ` query ($username: String, $status: MediaListStatus) { @@ -143,7 +144,6 @@ const infoQuery = `query ($id: Int) { export default function Info({ info, color }) { const { data: session } = useSession(); const [data, setData] = useState(null); - // const [infos, setInfo] = useState(null); const [episode, setEpisode] = useState(null); const [loading, setLoading] = useState(false); const [progress, setProgress] = useState(0); @@ -151,8 +151,6 @@ export default function Info({ info, color }) { const [stall, setStall] = useState(false); const [domainUrl, setDomainUrl] = useState(""); - // console.log(info); - const [showAll, setShowAll] = useState(false); const [open, setOpen] = useState(false); @@ -240,10 +238,28 @@ export default function Info({ info, color }) { if (!data || data?.episodes?.length === 0) { const res = await fetch( - `https://api.consumet.org/meta/anilist/info/${id[0]}?provider=9anime` + `https://api.moopa.my.id/anime/gogoanime/${info.title.romaji}` ); const datas = await res.json(); - if (res.status === 500) { + + if (datas) { + const release = datas.results.map((i) => i.releaseDate); + const match = closestMatch(info.startDate.year, release); + const filter = datas.results.find((i) => i.releaseDate === match); + + // const found = filter.find((i) => i.title === info.title.romaji); + + // setLog(found); + + if (filter) { + const res = await fetch( + `https://api.moopa.my.id/anime/gogoanime/info/${filter.id}` + ); + const dataA = await res.json(); + setEpisode(dataA.episodes); + // setLog(dataA); + } + } else if (res.status === 500) { setEpisode(null); setEpiStatus("error"); setError(datas.message); @@ -254,7 +270,6 @@ export default function Info({ info, color }) { // backgroundColor: `${data?.color || "#ffff"}`, // color: textColor, // }); - setStall(true); } else { setEpisode(data.episodes); } @@ -323,7 +338,7 @@ export default function Info({ info, color }) { } } fetchData(); - }, [id, session?.user?.name]); + }, [id, session?.user?.name, info]); function handleOpen() { setOpen(true); @@ -718,7 +733,7 @@ export default function Info({ info, color }) { data && (
{epiStatus === "ok" ? ( - episode?.length !== 0 ? ( + episode?.length !== 0 && episode ? ( episode?.map((epi, index) => { return (